---
title: SerializedDataAdder 序列化数据添加器
icon: FilePlus
relatedFile: app/src/core/stage/stageManager/concreteMethods/StageSerializedAdder.tsx
---

<Callout type="warn">
Deprecated
</Callout>

该服务用于将序列化后的数据（包括实体和关联）添加到项目舞台中。它主要处理从外部文件、复制粘贴操作或撤销操作中获取的数据，确保这些数据能够无缝地集成到现有项目中，并自动处理UUID冲突。

### 功能概述

该服务能够识别并处理多种类型的舞台实体（如文本节点、区域、连接点、笔画、门户节点、URL节点、图片节点、SVG节点）和关联（如直线边、三次Catmull-Rom样条边）。在添加数据时，它会为所有新加入的实体和关联生成新的唯一标识符（UUID），以避免与舞台中现有元素的冲突。此外，它还支持在添加时对数据进行位置偏移，这对于实现复制粘贴功能尤其有用。

## API

### `addSerializedData(serializedData: Serialized.File, diffLocation = new Vector(0, 0))`

此方法用于将一个完整的序列化文件数据结构（包含实体和关联）添加到舞台中。它会自动刷新所有新元素的UUID，并根据`diffLocation`参数调整它们在舞台上的位置。

### `refreshUUID(serializedData: Serialized.File)`

这是一个内部辅助方法，负责深度复制传入的序列化数据，并为其中所有的实体和关联生成新的UUID。它还会更新数据内部的引用关系，例如边的源/目标UUID以及区域的子元素UUID，以确保数据的一致性。
